home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 15 / CU Amiga Magazine's Super CD-ROM 15 (1997)(EMAP Images)(GB)[!][issue 1997-10].iso / CUCD / Graphics / Ghostscript / source / bcwin32.mak < prev    next >
Makefile  |  1997-06-18  |  12KB  |  431 lines

  1. #    Copyright (C) 1989-1997 Aladdin Enterprises.  All rights reserved.
  2. # This file is part of Aladdin Ghostscript.
  3. # Aladdin Ghostscript is distributed with NO WARRANTY OF ANY KIND.  No author
  4. # or distributor accepts any responsibility for the consequences of using it,
  5. # or for whether it serves any particular purpose or works at all, unless he
  6. # or she says so in writing.  Refer to the Aladdin Ghostscript Free Public
  7. # License (the "License") for full details.
  8. # Every copy of Aladdin Ghostscript must include a copy of the License,
  9. # normally in a plain ASCII text file named PUBLIC.  The License grants you
  10. # the right to copy, modify and redistribute Aladdin Ghostscript, but only
  11. # under certain conditions described in the License.  Among other things, the
  12. # License requires that the copyright notice and this notice be preserved on
  13. # all copies.
  14.  
  15. # bcwin32.mak
  16. # makefile for (MS-Windows 3.1/Win32s / Windows 95 / Windows NT) +
  17. #   Borland C++ 4.5 platform.
  18.  
  19. # ------------------------------- Options ------------------------------- #
  20.  
  21. ###### This section is the only part of the file you should need to edit.
  22.  
  23. # ------ Generic options ------ #
  24.  
  25. # Define the directory that will hold documentation at runtime.
  26.  
  27. GS_DOCDIR=c:/gs
  28.  
  29. # Define the default directory/ies for the runtime
  30. # initialization and font files.  Separate multiple directories with \;.
  31. # Use / to indicate directories, not a single \.
  32.  
  33. GS_LIB_DEFAULT=.;c:/gs\;c:/gs/fonts
  34.  
  35. # Define whether or not searching for initialization files should always
  36. # look in the current directory first.  This leads to well-known security
  37. # and confusion problems, but users insist on it.
  38. # NOTE: this also affects searching for files named on the command line:
  39. # see the "File searching" section of use.txt for full details.
  40. # Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended.
  41.  
  42. SEARCH_HERE_FIRST=1
  43.  
  44. # Define the name of the interpreter initialization file.
  45. # (There is no reason to change this.)
  46.  
  47. GS_INIT=gs_init.ps
  48.  
  49. # Choose generic configuration options.
  50.  
  51. # Setting DEBUG=1 includes debugging features (-Z switch) in the code.
  52. # Code runs substantially slower even if no debugging switches are set,
  53. # and also takes about another 25K of memory.
  54.  
  55. DEBUG=0
  56.  
  57. # Setting TDEBUG=1 includes symbol table information for the debugger,
  58. # and also enables stack checking.  Code is substantially slower and larger.
  59.  
  60. TDEBUG=0
  61.  
  62. # Setting NOPRIVATE=1 makes private (static) procedures and variables public,
  63. # so they are visible to the debugger and profiler.
  64. # No execution time or space penalty, just larger .OBJ and .EXE files.
  65.  
  66. NOPRIVATE=0
  67.  
  68. # Define the names of the executable files.
  69.  
  70. GS=gswin32
  71. GSCONSOLE=gswin32c
  72. GSDLL=gsdll32
  73.  
  74. # To build two small executables and a large DLL use MAKEDLL=1.
  75. # To build two large executables use MAKEDLL=0.
  76.  
  77. MAKEDLL=1
  78.  
  79. # Define the directory where the IJG JPEG library sources are stored,
  80. # and the major version of the library that is stored there.
  81. # You may need to change this if the IJG library version changes.
  82. # See jpeg.mak for more information.
  83.  
  84. JSRCDIR=jpeg-6a
  85. JVERSION=6
  86.  
  87. # Define the directory where the PNG library sources are stored,
  88. # and the version of the library that is stored there.
  89. # You may need to change this if the libpng version changes.
  90. # See libpng.mak for more information.
  91.  
  92. PSRCDIR=libpng
  93. PVERSION=96
  94.  
  95. # Define the directory where the zlib sources are stored.
  96. # See zlib.mak for more information.
  97.  
  98. ZSRCDIR=zlib
  99.  
  100. # Define the configuration ID.  Read gs.mak carefully before changing this.
  101.  
  102. CONFIG=
  103.  
  104. # Define any other compilation flags.
  105.  
  106. CFLAGS=
  107.  
  108. # ------ Platform-specific options ------ #
  109.  
  110. # Define the drive, directory, and compiler name for the Borland C files.
  111. # COMPDIR contains the compiler and linker (normally \bc\bin).
  112. # INCDIR contains the include files (normally \bc\include).
  113. # LIBDIR contains the library files (normally \bc\lib).
  114. # COMP is the full C compiler name (bcc32 for Borland C++).
  115. # COMPCPP is the full C++ compiler path name (bcc32 for Borland C++).
  116. # COMPAUX is the compiler name for DOS utilities (bcc for Borland C++).
  117. # RCOMP is the resource compiler name (brcc32 for Borland C++).
  118. # LINK is the full linker path name (normally \bc\bin\tlink32).
  119. # Note that these prefixes are always followed by a \,
  120. #   so if you want to use the current directory, use an explicit '.'.
  121.  
  122. COMPBASE=c:\bc
  123. COMPDIR=$(COMPBASE)\bin
  124. INCDIR=$(COMPBASE)\include
  125. LIBDIR=$(COMPBASE)\lib
  126. COMP=$(COMPDIR)\bcc32
  127. COMPCPP=$(COMP)
  128. COMPAUX=$(COMPDIR)\bcc
  129. RCOMP=$(COMPDIR)\brcc32
  130. LINK=$(COMPDIR)\tlink32
  131.  
  132. # If you don't have an assembler, set USE_ASM=0.  Otherwise, set USE_ASM=1,
  133. # and set ASM to the name of the assembler you are using.  This can be
  134. # a full path name if you want.  Normally it will be masm or tasm.
  135.  
  136. USE_ASM=0
  137. ASM=tasm
  138.  
  139. # Define the processor architecture. (always i386)
  140.  
  141. CPU=i386
  142.  
  143. # Define the processor (CPU) type.  (386, 486 or 586)
  144.  
  145. CPU_TYPE=386
  146.  
  147. # Define the math coprocessor (FPU) type.
  148. # Options are -1 (optimize for no FPU), 0 (optimize for FPU present,
  149. # but do not require a FPU), 87, 287, or 387.
  150. # If you have a 486 or Pentium CPU, you should normally set FPU_TYPE to 387,
  151. # since most of these CPUs include the equivalent of an 80387 on-chip;
  152. # however, the 486SX and the Cyrix 486SLC do not have an on-chip FPU, so if
  153. # you have one of these CPUs and no external FPU, set FPU_TYPE to -1 or 0.
  154. # An xx87 option means that the executable will run only if a FPU
  155. # of that type (or higher) is available: this is NOT currently checked
  156. # at runtime.
  157.  
  158. FPU_TYPE=0
  159.  
  160. # ------ Devices and features ------ #
  161.  
  162. # Choose the language feature(s) to include.  See gs.mak for details.
  163.  
  164. FEATURE_DEVS=level2.dev pdf.dev ttfont.dev
  165.  
  166. # Choose whether to compile the .ps initialization files into the executable.
  167. # See gs.mak for details.
  168.  
  169. COMPILE_INITS=0
  170.  
  171. # Choose whether to store band lists on files or in memory.
  172. # The choices are 'file' or 'memory'.
  173.  
  174. BAND_LIST_STORAGE=file
  175.  
  176. # Choose which compression method to use when storing band lists in memory.
  177. # The choices are 'lzw' or 'zlib'.  lzw is not recommended, because the
  178. # LZW-compatible code in Ghostscript doesn't actually compress its input.
  179.  
  180. BAND_LIST_COMPRESSOR=zlib
  181.  
  182. # Choose the implementation of file I/O: 'stdio', 'fd', or 'both'.
  183. # See gs.mak and sfxfd.c for more details.
  184.  
  185. FILE_IMPLEMENTATION=stdio
  186.  
  187. # Choose the device(s) to include.  See devs.mak for details.
  188.  
  189. DEVICE_DEVS=mswindll.dev mswinprn.dev mswinpr2.dev
  190. DEVICE_DEVS2=epson.dev eps9high.dev eps9mid.dev epsonc.dev ibmpro.dev
  191. DEVICE_DEVS3=deskjet.dev djet500.dev laserjet.dev ljetplus.dev ljet2p.dev ljet3.dev ljet4.dev
  192. DEVICE_DEVS4=cdeskjet.dev cdjcolor.dev cdjmono.dev cdj550.dev pj.dev pjxl.dev pjxl300.dev
  193. DEVICE_DEVS5=djet500c.dev declj250.dev lj250.dev jetp3852.dev r4081.dev lbp8.dev
  194. DEVICE_DEVS6=st800.dev stcolor.dev bj10e.dev bj200.dev m8510.dev necp6.dev bjc600.dev bjc800.dev
  195. DEVICE_DEVS7=t4693d2.dev t4693d4.dev t4693d8.dev tek4696.dev
  196. DEVICE_DEVS8=pcxmono.dev pcxgray.dev pcx16.dev pcx256.dev pcx24b.dev
  197. DEVICE_DEVS9=pbm.dev pbmraw.dev pgm.dev pgmraw.dev pgnm.dev pgnmraw.dev pnm.dev pnmraw.dev ppm.dev ppmraw.dev
  198. DEVICE_DEVS10=tiffcrle.dev tiffg3.dev tiffg32d.dev tiffg4.dev tifflzw.dev tiffpack.dev
  199. DEVICE_DEVS11=bmpmono.dev bmp16.dev bmp256.dev bmp16m.dev tiff12nc.dev tiff24nc.dev
  200. DEVICE_DEVS12=psmono.dev bit.dev bitrgb.dev bitcmyk.dev
  201. DEVICE_DEVS13=pngmono.dev pnggray.dev png16.dev png256.dev png16m.dev
  202. DEVICE_DEVS14=jpeg.dev jpeggray.dev
  203. DEVICE_DEVS15=pdfwrite.dev pswrite.dev epswrite.dev pxlmono.dev pxlcolor.dev
  204.  
  205. # ---------------------------- End of options ---------------------------- #
  206.  
  207. # Define the name of the makefile -- used in dependencies.
  208.  
  209. MAKEFILE=wincom.mak bcwin32.mak
  210.  
  211. # Define the current directory prefix and shell invocations.
  212.  
  213. D=\\
  214.  
  215. EXP=
  216. EXPP=
  217. SH=
  218. SHP=
  219.  
  220. # Define the arguments for genconf.
  221.  
  222. #CONFILES=-p %s+ -o $(ld_tr) -l lib.tr
  223. # We can't use $(ld_tr) because Borland make expands macro usages in
  224. # macro definitions at definition time, not at use time.
  225. CONFILES=-p %s+ -o ld$(CONFIG).tr -l lib.tr
  226.  
  227. # Define the generic compilation flags.
  228.  
  229. PLATOPT=
  230.  
  231. INTASM=
  232. PCFBASM=
  233.  
  234. # Make sure we get the right default target for make.
  235.  
  236. dosdefault: default gs16spl.exe
  237.  
  238. # Define the compilation flags.
  239.  
  240. !if $(CPU_TYPE)>500
  241. ASMCPU=/DFOR80386 /DFOR80486
  242. CPFLAGS=-DFOR80486 -DFOR80386
  243. !else if $(CPU_TYPE)>400
  244. ASMCPU=/DFOR80386 /DFOR80486
  245. CPFLAGS=-DFOR80486 -DFOR80386
  246. !else
  247. ASMCPU=/DFOR80386
  248. CPFLAGS=-DFOR80386
  249. !endif
  250.  
  251. !if $(CPU_TYPE) >= 486 || $(FPU_TYPE) > 0
  252. ASMFPU=/DFORFPU
  253. !else
  254. !if $(FPU_TYPE) < 0
  255. ASMFPU=/DNOFPU
  256. !else
  257. ASMFPU=
  258. !endif
  259. !endif
  260. FPFLAGS=
  261. FPLIB=
  262.  
  263. !if $(NOPRIVATE)!=0
  264. CP=-DNOPRIVATE
  265. !else
  266. CP=
  267. !endif
  268.  
  269. !if $(DEBUG)!=0
  270. CD=-DDEBUG
  271. !else
  272. CD=
  273. !endif
  274.  
  275. !if $(TDEBUG)!=0
  276. CT=-v
  277. LCT=-v -m -s
  278. CO=    # no optimization when debugging
  279. ASMDEBUG=/DDEBUG
  280. !else
  281. CT=
  282. LCT=
  283. CO=-Z -O2
  284. !endif
  285.  
  286. !if $(DEBUG)!=0 || $(TDEBUG)!=0
  287. CS=-N
  288. !else
  289. CS=
  290. !endif
  291.  
  292. # Specify output object name
  293. CCOBJNAME=-o
  294.  
  295. # Specify function prolog type
  296. COMPILE_FOR_DLL=-WDE
  297. COMPILE_FOR_EXE=-WE
  298. COMPILE_FOR_CONSOLE_EXE=-WC
  299.  
  300. GENOPT=$(CP) $(CD) $(CT) $(CS)
  301.  
  302. CCFLAGS0=$(GENOPT) $(PLATOPT) $(CPFLAGS) $(FPFLAGS) $(CFLAGS) $(XCFLAGS)
  303. CCFLAGS=$(CCFLAGS0)
  304. CC=$(COMP) @ccf32.tr
  305. CPP=$(COMPCPP) @ccf32.tr
  306. !if $(MAKEDLL)
  307. WX=$(COMPILE_FOR_DLL)
  308. !else
  309. WX=$(COMPILE_FOR_EXE)
  310. !endif
  311. CCC=$(CC) $(WX) $(CO) -c
  312. CCD=$(CC) $(WX) -c
  313. CCINT=$(CC) $(WX) -c
  314. CCCF=$(CCC)
  315. CCLEAF=$(CCC)
  316.  
  317. # Compiler for auxiliary programs
  318.  
  319. CCAUX=$(COMPAUX) -ml -I$(INCDIR) -L$(LIBDIR) -O
  320.  
  321. # Define the generic compilation rules.
  322.  
  323. .c.obj:
  324.     $(CCC) { $<}
  325.  
  326. .cpp.obj:
  327.     $(CCC) { $<}
  328.  
  329. # Define the files to be removed by `make clean'.
  330. # nmake expands macros when encountered, not when used,
  331. # so this must precede the !include statements.
  332.  
  333. BEGINFILES2=gs16spl.exe
  334.  
  335. # Include the generic makefiles.
  336.  
  337. !include wincom.mak
  338.  
  339.  
  340. # -------------------------- Auxiliary programs --------------------------- #
  341.  
  342. ccf32.tr: $(MAKEFILE) makefile
  343.     echo -a1 -d -r -G -N -X -I$(INCDIR) $(CCFLAGS0) -DCHECK_INTERRUPTS > ccf32.tr
  344.  
  345. # Since we are running in a Windows environment with a different compiler
  346. # for the DOS utilities, we have to invoke genarch by hand:
  347. $(GENARCH_XE): genarch.c $(stdpre_h) $(iref_h) ccf32.tr
  348.     $(COMP) -I$(INCDIR) -L$(LIBDIR) -O genarch.c
  349.     echo ***** Run "win genarch arch.h", then continue make. *****
  350.  
  351. # -------------------------------- Library -------------------------------- #
  352.  
  353. # See wincom.mak
  354.  
  355. # ----------------------------- Main program ------------------------------ #
  356.  
  357. LIBCTR=libc32.tr
  358.  
  359. $(LIBCTR): $(MAKEFILE) $(ECHOGS_XE)
  360.         echogs -w $(LIBCTR) $(LIBDIR)\import32.lib+
  361.         echogs -a $(LIBCTR) $(LIBDIR)\cw32.lib
  362.  
  363. !if $(MAKEDLL)
  364. # The graphical small EXE loader
  365. $(GS_XE): $(GSDLL).dll  $(DWOBJ) $(GSCONSOLE).exe
  366.     $(LINK) /Tpe $(LCT) @&&!
  367. $(LIBDIR)\c0w32 +
  368. $(DWOBJ) +
  369. ,$(GS_XE),$(GS), +
  370. $(LIBDIR)\import32 +
  371. $(LIBDIR)\cw32, +
  372. dwmain32.def, +
  373. $(GS).res
  374. !
  375.  
  376. # The console mode small EXE loader
  377. $(GSCONSOLE).exe: $(OBJC) $(GS).res dw32c.def
  378.     $(LINK) /Tpe /ap $(LCT) $(DEBUGLINK) @&&!
  379. $(LIBDIR)\c0w32 +
  380. $(OBJC) +
  381. ,$(GSCONSOLE).exe,$(GSCONSOLE), +
  382. $(LIBDIR)\import32 +
  383. $(LIBDIR)\cw32, +
  384. dw32c.def, +
  385. $(GS).res
  386. !
  387.  
  388. # The big DLL
  389. $(GSDLL).dll: $(GS_ALL) $(DEVS_ALL) gsdll.$(OBJ) $(GSDLL).res
  390.     $(LINK) $(LCT) /Tpd $(LIBDIR)\c0d32 gsdll @$(ld_tr) $(INTASM) ,$(GSDLL).dll,$(GSDLL),@lib.tr @$(LIBCTR),$(GSDLL).def,$(GSDLL).res
  391.  
  392. !else
  393. # The big graphical EXE
  394. $(GS_XE):   $(GSCONSOLE).exe $(GS_ALL) $(DEVS_ALL) gsdll.$(OBJ) $(DWOBJNO) $(GS).res dwmain32.def
  395.     copy $(ld_tr) gswin32.tr
  396.     echo $(DWOBJNO) + >> gswin32.tr
  397.     $(LINK) $(LCT) /Tpe $(LIBDIR)\c0w32 gsdll @gswin32.tr $(INTASM) ,$(GS_XE),$(GS),@lib.tr @$(LIBCTR),dwmain32.def,$(GS).res
  398.     -del gswin32.tr
  399.  
  400. # The big console mode EXE
  401. $(GSCONSOLE).exe:  $(GS_ALL) $(DEVS_ALL) gsdll.$(OBJ) $(OBJCNO) $(GS).res dw32c.def
  402.     copy $(ld_tr) gswin32.tr
  403.     echo $(OBJCNO) + >> gswin32.tr
  404.     $(LINK) $(LCT) /Tpe /ap $(LIBDIR)\c0w32 gsdll @gswin32.tr $(INTASM) ,$(GSCONSOLE),$(GSCONSOLE),@lib.tr @$(LIBCTR),dw32c.def,$(GS).res
  405.     -del gswin32.tr
  406. !endif
  407.  
  408. # Access to 16 spooler from Win32s
  409.  
  410. gs16spl.exe: gs16spl.c gs16spl.rc
  411.     $(CCAUX) -W -ms -c -v -I$(INCDIR) $*.c
  412.     $(COMPDIR)\brcc -i$(INCDIR) -r $*.rc
  413.     $(COMPDIR)\tlink /Twe /c /m /s /l @&&!
  414. $(LIBDIR)\c0ws +
  415. $*.obj +
  416. ,$*.exe,$*, +
  417. $(LIBDIR)\import +
  418. $(LIBDIR)\mathws +
  419. $(LIBDIR)\cws, +
  420. $*.def
  421. !
  422.     $(COMPDIR)\rlink -t $*.res $*.exe
  423.  
  424. # end of makefile
  425.  
  426.  
  427.  
  428.